home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / games / sakiba / source / pndata.c < prev    next >
Text File  |  2000-06-21  |  7KB  |  247 lines

  1. /**************************************************
  2.  
  3.     格闘シミュレーション「さきば」
  4.  
  5.         キャラクタデータ(ペンギン)
  6.  
  7.  **************************************************/
  8.  
  9. #include    <stdio.h>
  10.  
  11. #include    "sakiba.h"
  12. #include    "chranim.h"
  13.  
  14.  
  15. /************************
  16.     スプライトパターン
  17.  ************************/
  18. static CODE    walk0_l[] = {0x0000, 0x0010};        /* 通常 */
  19. static CODE    walk1_l[] = {0x0001, 0x0011};
  20. static CODE    walk2_l[] = {0x0002, 0x0012};
  21. static CODE    walk0_r[] = {0x0003, 0x0013};
  22. static CODE    walk1_r[] = {0x0004, 0x0014};
  23. static CODE    walk2_r[] = {0x0005, 0x0015};
  24.  
  25. static CODE    rot0[]    = {0x0006, 0x0016};        /* 回転 */
  26. static CODE    rot2[]    = {0x0007, 0x0017};
  27.  
  28. static CODE    smile_l[] = {0x0008, 0x0018};        /* 笑顔 */
  29. static CODE    smile_r[] = {0x0009, 0x0019};
  30.  
  31. static CODE    win0[]    = {0x000a, 0x001a};        /* 勝ち */
  32. static CODE    win1[]    = {0x000b, 0x001b};
  33. static CODE    win2[]    = {0x000c, 0x001c};
  34.  
  35. static CODE    lose0[]   = {0x000d, 0x001d};        /* 負け */
  36. static CODE    lose1[]   = {0x000e, 0x001e};
  37. static CODE    lose2[]   = {0x000f, 0x001f};
  38.  
  39. static CODE    snow0[]   = {0x0120};            /* 雪だるま */
  40. static CODE    snow1[]   = {0x0121};
  41. static CODE    snow2[]   = {0x0122};
  42. static CODE    snow3[]   = {0x0123};
  43.  
  44. static CODE    uki0[]    = {0x0224};            /* うきうき */
  45. static CODE    uki1[]    = {0x0225};
  46. static CODE    uki2[]    = {0x0226};
  47. static CODE    uki3[]    = {0x0227};
  48.  
  49. static CODE    moya0[]   = {0x0228};            /* もやもや */
  50. static CODE    moya1[]   = {0x0229};
  51. static CODE    moya2[]   = {0x022a};
  52. static CODE    moya3[]   = {0x022b};
  53.  
  54.  
  55. enum {    WALK0 = 0, WALK1, WALK2,
  56.     BACK0, BACK1, BACK2, ROT1, ROT3, SMILE, WIN0, WIN1, WIN2, LOSE0, LOSE1, LOSE2,
  57.     SNOW0, SNOW1, SNOW2, SNOW3, UKI0, UKI1, UKI2, UKI3, MOYA0, MOYA1, MOYA2, MOYA3,
  58.     ROT0 = WALK1, ROT2 = BACK1,
  59.     PAT_END
  60. };
  61.  
  62. static
  63. CHR_PAT    chr_pat[] = {
  64.         {1, 2, walk0_l, walk0_r},        /* 通常 */
  65.         {1, 2, walk1_l, walk1_r},
  66.         {1, 2, walk2_l, walk2_r},
  67.  
  68.         {1, 2, walk0_r, walk0_l},        /* 登場 */
  69.         {1, 2, walk1_r, walk1_l},
  70.         {1, 2, walk2_r, walk2_l},
  71.  
  72.         {1, 2, rot0, rot0},            /* 回転 */
  73.         {1, 2, rot2, rot2},
  74.  
  75.         {1, 2, smile_l, smile_r},        /* 笑顔 */
  76.  
  77.         {1, 2, win0, win0},            /* 勝ち */
  78.         {1, 2, win1, win1},
  79.         {1, 2, win2, win2},
  80.  
  81.         {1, 2, lose0, lose0},            /* 負け */
  82.         {1, 2, lose1, lose1},
  83.         {1, 2, lose2, lose2},
  84.  
  85.         {1, 1, snow0, snow0},            /* 雪だるま */
  86.         {1, 1, snow1, snow3},
  87.         {1, 1, snow2, snow2},
  88.         {1, 1, snow3, snow1},
  89.  
  90.         {1, 1, uki0, uki0},            /* うきうき */
  91.         {1, 1, uki1, uki1},
  92.         {1, 1, uki2, uki2},
  93.         {1, 1, uki3, uki3},
  94.  
  95.         {1, 1, moya0, moya0},            /* もやもや */
  96.         {1, 1, moya1, moya1},
  97.         {1, 1, moya2, moya2},
  98.         {1, 1, moya3, moya3}
  99.     };
  100.  
  101.  
  102. #define    V(n, dn, ddn, t)    (int)((n)*65536.0),(int)((dn)*65536.0),(int)((ddn)*65536.0),t
  103.  
  104. /****************
  105.     シーケンス
  106.  ****************/
  107. static
  108. int    xy0[] = {    V(0.0, 0.0, 0.0, SEQ_END)
  109.     };
  110.  
  111. /*** 通常 *******/
  112. static
  113. short    normal_pat[] = {WALK0, 12, WALK1, 20, WALK0, 12, WALK2, 20, SEQ_LOOP};
  114.  
  115. /*** 防御 *******/
  116. static
  117. short    guard_pat[] = {ROT1, 4, BACK0, SEQ_LOOP};
  118.  
  119. /*** くらい *******/
  120. static
  121. short    damage_pat[] = {LOSE2, 48, WALK0, 3, WALK1, 6, WALK0, 3, WALK2, 6,
  122.             WALK0, 3, WALK1, 6, WALK0, 3, WALK2, 6, WALK0, 4, SEQ_END};
  123. static
  124. int    damage_x[] = {    V(0.0, -1.5, 1.5/8, 8), V(-6.0, 0.0, 0.0, 40),
  125.             V(-6.0, 6.0/40, 0.0, 40), V(0.0, 0.0, 0.0, SEQ_END)
  126.     };
  127.  
  128. /*** 登場 *******/
  129. static
  130. short    ready_pat[] = {BACK0, 2, BACK1, 4, BACK0, 2, BACK2, 4, SEQ_LOOP};
  131. static
  132. int    ready_x[] = {    V(0.0,  0.6, -0.6*2/24, 24), V(0.0, -0.6,  0.6*2/24, 24),
  133.             V(0.0, 0.0, 0.0, SEQ_LOOP)
  134.     };
  135.  
  136. /*** 勝ち *******/
  137. static
  138. short    win_pat[] = {WIN0, 8, WIN1, 16, WIN0, 8, WIN2, 16, SEQ_LOOP};
  139. static
  140. int    win_y[] = {    V(0.0, 0.05, 0.0, SEQ_END)
  141.     };
  142.  
  143. static
  144. short    uki_pat[] = {UKI0, 12, UKI1, 12, UKI2, 12, UKI3, 12, SEQ_LOOP};
  145. static
  146. int    uki_x[] = {    V(6.0, 0.0, 0.0, SEQ_END)
  147.     };
  148. static
  149. int    uki_y[] = {    V(-18.0, 0.05, 0.0, SEQ_END)
  150.     };
  151.  
  152. /*** 負け *******/
  153. static
  154. short    lose_pat[] = {LOSE0, 12, LOSE1, 24, LOSE0, 12, LOSE2, 24, SEQ_LOOP};
  155. static
  156. int    lose_y[] = {    V(0.0, -0.05, 0.0, SEQ_END)
  157.     };
  158.  
  159. static
  160. short    moya_pat[] = {MOYA0, 8, MOYA1, 8, MOYA2, 8, MOYA3, 8, SEQ_LOOP};
  161. static
  162. int    moya_y[] = {    V(-14.0, -0.05, 0.0, SEQ_END)
  163.     };
  164.  
  165. /*** 体当たり *****/
  166. static
  167. short    body1_pat[] = {WALK0, 2, WALK1, 4, WALK0, 2, WALK2, 4,
  168.             WALK0, 2, WALK1, 4, WALK0, 2, WALK2, 4,
  169.             ROT0, 4, ROT1, 4, ROT2, 4, ROT3, 4, SEQ_END};
  170. static
  171. int    body1_x[] = {    V(0.0, 1.0, 0.0, 24), V(24.0, 2.0, 0.0, 16),
  172.             V(56.0, 0.0, 0.0, SEQ_LOOP)
  173.     };
  174.  
  175. static
  176. short    body2_pat[] = {ROT0, 4, ROT1, 4, ROT2, 4, ROT3, 4, ROT0, 4, ROT1, 4,
  177.             ROT2, 5,  ROT3, 6,  ROT0, 7,  ROT1, 8, ROT2, 16,
  178.             BACK0, 2, BACK1, 4, BACK0, 2, BACK2, 4,
  179.             BACK0, 2, BACK1, 4, BACK0, 3, BACK2, 5, BACK0, 6,
  180.             ROT2, 24, ROT3, 4, ROT0, 4,
  181.             SEQ_END};
  182. static
  183. int    body2_x[] = {    V(56.0, 2.0, -2.0/50, 50), V(106.0, 0.0, 0.0, 16),
  184.             V(106.0, 0.0, -106.0/32/32, 32),
  185.             V(53.0, -106.0/32, 106.0/32/32, 32),
  186.             V(0.0, 0.0, 0.0, SEQ_END)
  187.     };
  188.  
  189. /*** 雪だるま *******/
  190. static
  191. short    jump1_pat[] = {WALK0, 2,  WALK1, 4, WALK0, 2, WALK2, 4,
  192.             WALK0, 20 + 48, SEQ_END};
  193. static
  194. int    jump1_y[] = {    V(0.0, -2.5, 2.5*2/32, 32), V(0.0, 0.0, 0.0, SEQ_END)
  195.     };
  196.  
  197. static
  198. short    snow_pat[] = {NOPUT, 32,
  199.             SNOW0, 6, SNOW1, 6, SNOW2, 6, SNOW3, 6,
  200.             SNOW0, 6, SNOW1, 6, SNOW2, 6, SNOW3, 6, SEQ_END};
  201. static
  202. int    snow_x[] = {    V(0.0, 0.0, 0.0, 32), V(0.0, 64.0/48, 0.0, 48),
  203.             V(64.0, 0.0, 0.0, SEQ_END)
  204.     };
  205. static
  206. int    snow_y[] = {    V(0.0, 0.0, 0.0, 32), V(0.0, -5.5, 5.5*2/48, 48),
  207.             V(0.0, 0.0, 0.0, SEQ_END)
  208.     };
  209.  
  210. static
  211. short    smile_pat[] = {SMILE, 36, WALK0, 8, SMILE, 32, SEQ_END};
  212.  
  213.  
  214. #define    NUL3    {NULL, NULL, NULL}
  215.  
  216. /**********************
  217.     キャラクタデータ
  218.  **********************/
  219. CHR_DATA    chr_penguin = {
  220.             {3, 4, 8,            /* 弱攻撃 */
  221.                 "雪だるま",
  222.                 {{snow_pat, snow_x, snow_y}, {jump1_pat, xy0, jump1_y}},
  223.                 {{smile_pat, xy0, xy0}, NUL3}
  224.             },
  225.             {6, 5, 26,            /* 強攻撃 */
  226.                 "体当たり",
  227.                 {{body1_pat, body1_x, xy0}, NUL3},
  228.                 {{body2_pat, body2_x, xy0}, NUL3}
  229.             },
  230.  
  231.             "くるみ",            /* キャラクタ名 */
  232.             "PENGUIN",            /* スプライトファイル名 */
  233.             {"PENGUIN1", "PENGUIN2"},    /* パレットファイル名 */
  234.             chr_pat,            /* キャラクタパターン */
  235.             {                /* アニメーションシーケンス */
  236.             {{normal_pat, xy0, xy0}, NUL3},            /* 通常 */
  237.             {{guard_pat, xy0, xy0}, NUL3},            /* 防御 */
  238.             {{damage_pat, damage_x, xy0}, NUL3},        /* くらい */
  239.             {{ready_pat, ready_x, xy0}, NUL3},        /* 登場 */
  240.             {{win_pat, xy0, win_y},                /* 勝ち */
  241.                     {uki_pat, uki_x, uki_y}},
  242.             {{lose_pat, xy0, lose_y},            /* 負け */
  243.                     {moya_pat, xy0, moya_y}}
  244.             }
  245.         };
  246.  
  247. /********************** End of File *********************************************/